Method and apparatus for accessing a contacts database and telephone services

ABSTRACT

Embodiments described herein provide a method and technique for operating a computing device. An interface is displayed for enabling the computing device to control a voicemail system. The interface includes one or more display objects, wherein each display object is selectable by a user to enter a command input assigned to that display object. A selection is detected of any one of the one or more display objects, and the command input assigned to the display object is identified. A signal tone is generated corresponding to the command input. The signal input may be transmitted across a network to the voicemail system to communicate a command to the voicemail system.

RELATED APPLICATIONS

This patent application is a continuation of U.S. patent applicationSer. No. 11/202,408, filed Aug. 10, 2005, which is acontinuation-in-part of Ser. No. 10/616,108, filed Jul. 8, 2003, whichclaims priority to U.S. Provisional Patent Application Ser. No.60/467,794, filed May 1, 2003. The application is further acontinuation-in-part of the U.S. patent application Ser. No. 09/977,871,filed Oct. 14, 2001 (now issued as U.S. Pat. No. 7,007,239), which is acontinuation-in-part of U.S. patent application Ser. No. 09/668,123,filed Sep. 21, 2000 (now issued as U.S. Pat. No. 6,781,575), and acontinuation-in-part of U.S. patent application Ser. No. 09/374,095 (nowissued as U.S. Pat. No. 6,516,202). Each of the aforementioned priorityapplications are hereby incorporated by reference in their entirety.

TECHNICAL FIELD

Embodiments described herein relate to the field of computer-humaninterfaces. In particular, embodiments described herein relate to agraphical interface for operating a computer based telephony device andan interface for accessing names and telephone numbers from a contactsdatabase.

BACKGROUND

Computing devices, particularly handheld and portable devices, haveevolved to include numerous types of communication capabilities andfunctionality. For example, handheld devices exist that operate ascellular phones, messaging terminals, Internet devices, while includingpersonal information management (PIM) software and photo-managementapplications. Additionally, Internet Protocol services exist that cantransform Internet-enabled machines into telephony devices. Evenstand-alone telephones that connect to traditional Public SwitchedTelephone Networks (PSTN) are including more software to enhance thetelephone's functionality.

In enhancing telephony operations with computing resources and software,effort has been made to enhance and assist the user in using suchdevices. For example, software features exist to facilitate the ease inwhich the user can establish a speed dial, and to make recently usedphone numbers more readily available to users. Small form-factorcomputing devices, such as devices that provide cellular phonefunctionality, have particular use for speed dial features, in order toreduce the manual involvement of the user. These devices have smallerkeyboards that may be harder to operate, and/or use in mobile or dynamicenvironments, where the user cannot readily retrieve a desired number.

Telephony devices are just one type of communication device. There arenow many types of communication types, and multi-functional devicesexist to accommodate the different communication types. Examples ofcommunication types other than telephony include e-mail, instant message(including SMS protocol messages and Multimedia Message Service (MMS)protocol messages), and video conferencing. Many computing devices,particularly smart phones, are enabled to support communications usingmultiple communication mediums.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is a front isometric view of a handheld computer system on whichan embodiment of the invention may be implemented;

FIG. 1B is rear isometric view of the handheld computer system of FIG.1;

FIG. 2 is a front isometric view of the handheld computer system ofFIGS. 1A and 1B equipped with a wireless communications peripheralattachment;

FIG. 3A is a front isometric view of an integrated stylus-based handheldcomputer and cellular telephone system;

FIG. 3B is a rear isometric view of an integrated keyboard-basedhandheld computer and cellular telephone system;

FIG. 3C illustrates one embodiment of a keyboard layout for the handheldcomputer and cellular telephone system of FIGS. 3A and 3B;

FIG. 4 is a functional block diagram of a telephone user interfacesoftware application;

FIG. 5A illustrates one possible embodiment for a display arrangementfor a telephone dial pad user interface view;

FIG. 5B illustrates the telephone dial pad user interface view of FIG.5A when there is an active telephone call;

FIG. 6 illustrates one possible embodiment for a display arrangement fora telephone call history user interface view;

FIG. 7 illustrates one possible embodiment for a display arrangement fora telephone speed dial user interface view;

FIG. 8 illustrates one possible embodiment for a display arrangement fora telephone speed dial page editing user interface;

FIG. 9A illustrates one possible embodiment for a display arrangementfor a telephone speed dial record creating user interface;

FIG. 9B illustrates one possible embodiment for a display arrangementfor a telephone speed dial record editing user interface;

FIG. 10 illustrates a series of user interface screens navigated by auser when creating a new speed dial entry in an empty speed dial slot;

FIG. 11 illustrates a series of user interface screens navigated by auser when creating a new speed dial entry in a speed dial slot thatalready has a current speed dial record;

FIG. 12 illustrates a series of user interface screens navigated by auser when editing an existing speed dial entry from a different speeddial page;

FIG. 13A illustrates one possible embodiment for a display arrangementfor a telephone contacts user interface view;

FIG. 13B illustrates a method for handling ambiguous key entries inconnection with performing a lookup of a contact record and/or dialing aphone number, under an embodiment of the invention;

FIG. 13C illustrates an implementation of an embodiment such asdescribed with a method of FIG. 13B;

FIG. 14 illustrates a first view of a display arrangement for atelephone active call user interface view;

FIG. 15 illustrates a second view of a display arrangement for atelephone active call user interface view;

FIG. 16 illustrates an alert screen that may be display when an incomingcall is received and the lid of the telephone is open;

FIG. 17 illustrates an alert screen that may be display when an incomingcall is received and the lid of the telephone is closed;

FIG. 18A describes a flowchart showing one embodiment of adding a voicemailbox to the speed dial of the system for voicemail access;

FIG. 18B shows one embodiment of screen shots for voicemail control;

FIG. 19 illustrates another method describing establishment and use of avoicemail control feature for a computing device, under an embodiment ofthe invention;

FIG. 20 illustrates a system for enabling establishment and use of avoicemail control feature for a computing device, under an embodiment ofthe invention; and

FIG. 21 illustrates an embodiment implemented on a computing device 2110in which the commands inputs for the voicemail system are entered andprocessed through a multi-dimensional mechanical input mechanism 2150.

DETAILED DESCRIPTION

According to one or more embodiments described herein, a system andmethod are provided for enabling a user of a computing device to accessand use a voicemail system using a displayed or mechanical interface.

Embodiments described herein provide a method and technique foroperating a computing device. An interface is displayed for enabling thecomputing device to control a voicemail system. The interface includesone or more display objects, wherein each display object is selectableby a user to enter a command input assigned to that display object. Aselection is detected of any one of the one or more display objects, andthe command input assigned to the display object is identified. In oneembodiment, to select a display object, the user can touch an on-screenbutton or may press a corresponding key of the computing device. In afurther embodiment, the arrangement of on-screen buttons may correspondto the arrangement of keys. A signal tone is generated corresponding tothe command input. The signal input may be transmitted across a networkto the voicemail system to communicate a command to the voicemailsystem.

Additionally, one or more embodiments described herein provide a methodand apparatus for accessing a contacts database and telephone servicesis herein disclosed. In one embodiment, ambiguous key entries that canbe resolved either numerically or alphabetically or resolved for bothfunctions of looking up a contact and dialing a number.

In the following description, for purposes of explanation, specificnomenclature is set forth to provide a thorough understanding of thepresent invention. However, it will be apparent to one skilled in theart that these specific details are not required in order to practicethe present invention. For example, the present invention has beendescribed with reference to handheld computer and cellular telephonesystems. However, the same techniques can easily be applied to othertypes of telephony devices such as non mobile telephone systems.

One or more embodiments described herein may be implemented through theuse of instructions that are executable by one or more processors. Theseinstructions may be carried on a computer-readable medium. Machinesshown in figures below provide examples of processing resources andcomputer-readable mediums on which instructions for implementingembodiments of the invention can be carried and/or executed. Inparticular, the numerous machines shown with embodiments of theinvention include processor(s) and various forms of memory for holdingdata and instructions. Examples of computer-readable mediums includepermanent memory storage devices, such as hard drives on personalcomputers or servers. Other examples of computer storage mediums includeportable storage units, such as CD or DVD units, flash memory (such ascarried on many cell phones and personal digital assistants (PDAs)), andmagnetic memory. Computers, terminals, network enabled devices (e.g.mobile devices such as cell phones) are all examples of machines anddevices that utilize processors, memory, and instructions stored oncomputer-readable mediums.

Overview

FIG. 1A and FIG. 1B illustrate a first handheld computer system 100. Asillustrated, the handheld computer system includes a display 120 andseveral physical buttons 130. The display 120 includes a visual display,such as a liquid crystal display (LCD) for presenting information to auser. The user may manipulate physical buttons 130 to input informationinto the handheld computer system 100 and make selections of informationpresented on display 120. In one embodiment, the display 120 may becontact-sensitive, in that a digitizer pad may be integrated into thedisplay 120. For example, an LCD screen may overlay a digitizer pad andform one display assembly.

The handheld computing system 100 further includes a connection 180 in abottom area for the handheld computing system 100. The connection 180 isdesigned to connect with another device, such as a computer system, forexample. In one embodiment, the connection 180 may comprise a serialconnection, such as a Universal Serial Bus (USB) connection or an RS-232connection. Alternative types of connections may be used.

The handheld computing system 100 further includes a void 110 in theback area 177 of the handheld computing system 100. The void 110 isdesigned to receive an extra element, such as through the top area 170of the handheld computing system 100, for example. For one embodiment,the extra element may be a simple place holder. For another embodiment,the extra element may be something else, such as a cellular transceiver150.

In operation, the display 120 provides information, and also a means bywhich the user can enter input. For example, a user may employ a stylusor tipped instrument to make contact with the display and enter input,while at the same time viewing content generated for the display. In onemode of operation, a stylus can be used in the manner of a writing pento enter characters and figures by drawing the stylus across thedigitizer pad. Further, the user may be instructed to enter text into aspecific area 125 of the digitizer pad. The stylus and digitizer mayfunction like a computer mouse to operate and manipulate interactiveelements on the display. For example, the computer system may present avirtual button in a location on the display that can be activated toperform an associated function by the user tapping the stylus or afinger on the digitizer pad at the virtual button location. Additionallyor alternatively, a user may enter information into the handheldcomputing system 100 (and any extensions such as a cellular transceiver150) via a microphone 112.

According to one embodiment, the handheld computer system 100 mayinclude or be provided with wireless communication capabilities,including the ability to enable the user to make a voice calls and sendmessages (text, image or voice) across cellular networks. As analternative to cellular networks, wireless network communicationcapabilities may be in the form of WiFi or Bluetooth connectivity (oreven Infrared), where the handheld computer system 100 connects to agateway to the Internet (or other network) through such wirelessconnection. Various aspects of a handheld your system and interconnectedcellular radiotelephone are described in U.S. Pat. No. 6,516,202 (whichis hereby incorporated by reference in its entirety by thisapplication).

Although illustrative embodiments of the invention have been describedin detail herein with reference to the accompanying drawings, it is tobe understood that the invention is not limited to those preciseembodiments. As such, many modifications and variations will be apparentto practitioners skilled in this art. Accordingly, it is intended thatthe scope of the invention be defined by the following claims and theirequivalents. Furthermore, it is contemplated that a particular featuredescribed either individually or as part of an embodiment can becombined with other individually described features, or parts of otherembodiments, even if the other features and embodiments make nomentioned of the particular feature. This, the absence of describingcombinations should not preclude the inventor from claiming rights tosuch combinations.

FIG. 2 illustrates a handheld computer having a cellular transceiver 150that is a peripheral or accessory. One implementation provides that thehandheld computer system 100 controls to cellular telephone transceiver150 through software or other programming elements. The cellulartelephone transceiver 150 may also included processor and built-insoftware or firmware that provides wireless communication functionality,connectivity and/or applications to the user. According to oneembodiment, software may reside on either of the handheld computersystem 100 or cellular transceiver 150 in order to provide a userinterface when wireless communications and wireless can indicationapplications are being used. The cellular transceiver 150 may optionallyinclude a flip lid 154 having a void 156. The void 156 may allow a userto view portions of the handheld computing system 100 when the flip lid154 is in a closed position. The flip lid 154 may pivotably couple to amain body portion 152 for the cellular transceiver 150.

FIGS. 3A and 3B illustrate a handheld computer with an integratedcellular telephony system 300. The integrated cellular telephony system300 may enable voice and data transmissions over cellular networks. Theintegrated handheld computer and cellular telephone system 300 includesa keyboard 330 such that the user may easily enter names, addresses,phone numbers, and e-mail messages into application programs running onthe integrated handheld computer and cellular telephone system 300.

FIG. 3C illustrates one embodiment in which the keyboard is used as aninput mechanism of the handheld computer and cellular telephone system300 of FIGS. 3A and 3B. the keyboard includes an option key that is usedto generate secondary characteristics from the various keys. Forexample, the “E” key 361 normally generates an “E” character. But if the“E” key 361 is pressed while simultaneously holding the option key 301,then the “$” character will be generated.

The keyboard of FIG. 3C also includes a digit dial pad area 391. Digitdial pad area 391 is laid out like a conventional touchtone telephonedial pad. In this manner, a user may dial telephone numbers (byselecting keys that carry numerical values representing the desirednumbers) using the familiar mechanical touch-tone telephone dial pad. Inone implementation, keys that comprise a digit dial pad area 391 havealternative alphanumeric values. For example, one key may have bothnumber and letter value. To explicitly generate a number, a user maypress the option key 301 in order to generate a numerical digit valuefrom the keys into digit dial pad area 391. However, the software in thehandheld computer and cellular telephone system 300 may interpret anykeypress into digit dial pad area 391 as a numerical digit in certaincontexts whether or not the option key 301 is the pressed. For example,if the user is entering a telephone number in a telephone number inputfield of a contact record, any key press from the digit dial pad area391 will be interpreted as a numerical value whether or not the optionkey 301 is pressed.

As an alternative, no keyboard may be present on the integrated andcellular telephone system. Rather, the keyboard may be a completelyvisual input mechanism, provided on a contact-sensitive display of theintegrated and cellular telephone system. The keyboard may be displayed,with individual keys including numerical values and/or character values,and the user may make contact with regions of the display area where thekeyboard is being displayed. In this way, an embodiment permits a “soft”keyboard to operate very similar to the physical counterpart.

Telephone Terminal User Interfaces

Embodiments of the invention incorporate a speed-dial feature, in whichspecific actions (such as a press and hold of a physical button or keyfrom a keyboard) is associated with dialing a phone number.

According to an embodiment a cellular handheld computing device mayincorporate a telephone user interface having multiple views. In oneimplementation, the views that are available include: a speed dial view,a dial pad view, a contact library view, a called history view, and anactive call view. FIG. 4 illustrates a conceptual diagram of a phoneapplication 401. As illustrated, phone application 401 generates anduses a set of principal telephone interface views 405, including a dialpad view 410, a call history view 420, a call detail view 421, a speeddial view 430, a contact view 440, and an active call view 450.

In one embodiment, certain events will cause the telephone application401 to automatically see which between different views. Example when anincoming telephone calls detected, the telephone application 401 willautomatically switch to the active call user interface view 450 in orderto show the user information about the incoming telephone call.

Another event that may cause the telephone application to automaticallyswitch between different views is the entry of characters from an inputdevice such as a keyboard or stylus and digitizer pad (particularly whenthe display provides a soft keyboard). In one embodiment, entry of analphabetic character will cause the telephone application 401 to movefrom one displayed view to the context view 440 in order to enable theuser to search a database of contact records. Each contact record maycontain fields having alphanumeric strings corresponding to one or moreof the following: a first name, last name, a nickname, a place of work,a job title, a phone number, a mobile number, alternative numbers (home,fax), and messaging identifiers (including one or more of the following:email address, instant message identifier, Short Message Serviceidentifier, Multimedia Message Identifier etc.). Programming elementsassociated with the contact user view 440 may match an entered characteror character string (a search string) with a field of individual contactrecords in the contact library.

In one implementation, a user input corresponding to a numeric value maycause the telephone application 401 to automatically switch to dial padview 410. The aforementioned implementations provide examples ofembodiments of the invention, some of which are described below.

Dial Pad View

In one embodiment, dial pad view 410 may include or be associated withprogramming elements that provide a conventional DTMF (Dial ToneMultiple Frequency) touchtone dial pad interface 575 to users such tousers may make outgoing telephone calls with a traditional telephonicinterface. FIG. 5A illustrates one implementation of dial pad view 410.In one implementation, dial pad view 410 is an initial user interfacefor telephone application 401, under the assumption that placing phonecalls is a primary use of a device incorporating the telephoneapplication.

A user may operate a device incorporating the telephone application 401by touching the device's display area where desired numbers of the dialpad appear. An icon or other input mechanism may be used to cause thedevice to use a series of numerical inputs as a phone number in adialing function.

The dial pad view 410 may be invoked automatically or manually inconnection with an active telephone call. As such the dial pad view maybe used to enter DTMF touch-tones in order to access interactiveresponse systems, such as voicemail systems or telephone bankingsystems.

In one embodiment, when a user begins entering a telephone number, thetelephone number being dialed is placed in a title bar 590. The user mayalso access the last ten telephone numbers dialed (“redial list”) byscrolling up or down. Specifically, getting the scroll up or down keywill move through the last ten numbers dialed and individually displayeach number in the title bar 590.

One implementation provides that the dial pad view 410 (or any otherview) includes four soft keys or buttons that are selectable to enablethe user to access additional views of the user-interface framework. Inone implementation, soft buttons provided on the dial pad view 410include a speed dial view button 510, a dial pad view button 520, acontacts view button 530, and a call history view 540. In an exampleprovided, the dial pad view button 520 is shown highlighted by invertedgraphic colors since the dial pad view 410 is active. In order to selectany of the other views, a user selects the associated view button 510,520, 530 or 540. The user may also repeatedly press an applicationbutton associated with the telephone application to rotate through thevarious telephone application user interface views (including the activecall view if there is an active call in progress).

In an embodiment, an additional user interface view may be madeavailable when there is an active telephone call. FIG. 5B illustrates anembodiment in which an active call view button 550 may be used by theuser to access an active call view. In an implementation shown, theactive call view button 550 is present only when there is an activetelephone call.

In embodiments in which a keyboard is provided with the computingdevice, then a user may dial a phone number using the keyboard. In manycases, keyboards include keys that are individually interpretable aseither a character or a phone number. In such cases, the computingdevice may include programmatic elements to bias the interpretation ofany key press in connection with the dial pad area 391 as a number. Forexample, an implementation may provide that if the key press isinterpretable as a number, then the key press will be interpreted as anumber. Otherwise, if the key press has no numerical value (e.g. it ischaracter only), then it is ignored. In an alternative embodiment, thedial pad view 410 may be used to provide a means of entering telephonenumbers that use letter mnemonics. For example, 1-800-FLOWERS is afloral service that uses letter mnemonics in order to have potentialcustomers easily remember the contact telephone number. However, dialinga telephone number with letter mnemonics can be difficult to users whomust search keys of a dial pad or keyboard for alternative DTMF tonesthat translate to the mnemonics. In order to allow the user to quicklyenter such telephone numbers, one embodiment allows the user to enterthe letters directly, and a computer may translate the letters into theproper of associated DTMF tones. For example, if the text for “FLOWERS”were entered, the DTMF tones associated with dial pad numbers “3549377”would be generated. FIGS. 5A and 5B illustrate an alphabet DTMF mapping.

Certain aliasing may occur in such an alternative embodiment. However,an intelligent program may use certain heuristics or other logic todetermine the desired number in most circumstances. For example, if theuser were to dial the full number “1800FLOWERS” without using the optionkey 301 to specify the “1800” portion as numbers, the system would notknow if the first four digits should be interpreted as numbers (“1800”)or letters that should be translated into associated DTMF tones (e.g.“YN))” equivalent to dial numbers “9400”). But a heuristic could be usedto always translate the “YN00” pattern into the common “1800” prefix for11-digit numbers. The “FLOWERS” portion may be recognized as a lettermnemonic in an embodiment that uses the keyboard of FIG. 3C since noneof the letters in “FLOWERS” share a numerical value. (at least in theexample provided). As another example, the mnemonic “LAWYERS” isambiguous since the letter “Y” and the number “1” are on the same key onthe keyboard of FIG. 3C. In such circumstances, the system could use theheuristic that “all ambiguous letter/number keystrokes located betweentwo certainly letter key strokes should be interpreted as letters.”Thus, since the “L” at the beginning of “LAWERS” and the “S” at the endof “LAWYERS” can only be interpreted as letters, then all key inputsbetween those two inputs (“AWYER”) should be interpreted as letters.

Call History View

Referring to FIG. 4, an embodiment provides that a call history view 420displays a list of previous incoming, outgoing, or miss calls. A usermay use the displayed information of the call history view 420 to make anew outgoing call.

FIG. 6 illustrates one embodiment of the call history view 420. The callhistory view 420 may display called history view button 540 in ahighlighted form (as the call history view 420 is active), denoted ashighlighted call history view button 640. A user may filter informationprovided in a call history view 420 by changing the category selection690 only the outgoing calls, or only to miss calls. The “ALL” selectionillustrated in FIG. 6 illustrates all incoming calls, outgoing calls,and missed calls.

In one implementation, in order to dial a particular number from thecall history list, the user may select a display item corresponding to apast call, and then activate the dial soft button 670. Alternativelythey user may simply press the space bar or return key on the keyboardillustrated in FIG. 3A and FIG. 3C. in order to obtain more informationon a particular selected call (via a selected display item for thatcall) in the call history list, and then activate a detailed soft button680 to reestablish the call.

In one embodiment, if the user is in the call history view 420 andbegins to enter alphabetic characters, the telephone application willautomatically switch to the contacts view. The telephone applicationwill then search a library of contact records for a desired contactusing the entered character or characters as a search string. Moreinformation on this feature is provided with embodiments describedbelow.

Speed Dial View

Referring to FIG. 4, an embodiment provides for a speed dial view 430 asan interface of the telephone application 401. The speed dial view 430provides a list of designated or commonly called telephone numbers forquick access. In an implementation, the speed dial view 430 isconfigured by the user, who specifies the numbers that are to be speeddialed, as well as the action or input that is to trigger the speed dialfor a specific number.

FIG. 7 illustrates an implementation of the speed dial view 430. As withother views, the speed dial soft button 510 is in a selected state ascompared to other soft buttons for other views. In an embodiment shown,the speed dial view 430 has a title bar 715 (provided near the top ofthe view) and a command button area 735 (provided towards the bottom ofthe view).

An area 725 between the title bar 715 and command button area 735 on thespeed dial view 430 is occupied by ten programmable speed dial buttons,arranged in two columns of five buttons per column. Each of the speeddial buttons correspond to a speed dial record. The speed dial recordtag or label (or a portion or representation thereof) is displayed onthe screen button, and activating (e.g. “tapping”) a button with a labelcauses the telephone application to control the handheld computer andtelephone peripheral to dial the telephone number of the correspondingspeed dial record. A user may customize all of the different speed dialbuttons with their own personal numbers and short-cuts. The commandbutton area 735 may include a speed dial view button 710, a dial padview button 720, a contacts view button 730, and a call history view740, which are similar to the respective view buttons 510, 520, 530 and540 described with reference to FIG. 5.

In an embodiment shown, speed dial user interface view of the presentembodiment implements a page metaphor, whereby a plurality of speed dial“pages” are each used to store a sub-set of speed dial records. In FIG.7, there are five different speed dial pages. To navigate between thedifferent speed dial pages, there are a set of five numbered speed dialpage buttons 791, 792, 793, 794, and 795 in the lower left corner of thespeed dial user interface view. The currently displayed speed dial viewpage is the first speed dial page such that first speed dial page button791 is highlighted with inverted graphics. Tapping on any of the otherpage buttons 792, 793, 794, or 795 will effect display of the contentsof that page (and that page button will then become highlighted).

The user may navigate though the various speed dial entries using ascroll button. In FIG. 7, the voicemail speed dial button is highlightedwith a pair of white brackets. Pressing a scroll down button would movethe highlighting to the next non empty speed dial entry (“Ron Work” inthis example). In one embodiment, pressing the up scroll button when thefirst speed dial entry is highlighted will move to a non empty speeddial button on the next non empty page of speed dial buttons (page 2 inthis example assuming page 2 has a non empty speed dial button). In analternate embodiment, pressing the pressing the up scroll button whenthe first speed dial entry is highlighted will move to a non empty speeddial button on the next non empty page of speed dial buttons (page 5 inthis example assuming page 5 has a non empty speed dial button).

When the last non empty speed dial button of a speed dial page ishighlighted (“Greg” in this example), pressing the scroll down buttonwill move the highlight to the first non empty speed dial button of thenext non empty speed dial page (page 2 in this example assuming page 2has a non empty speed dial button.). In an alternate embodiment,pressing the scroll down button when the last non empty speed dialbutton of a speed dial page is highlighted (“Greg” in this example) willmove the highlight to the first non empty speed dial button of the samespeed dial page (“Voice Mail” in this example).

The basic operation of the telephone application from the speed dialuser interface view in ordinary operation is as follows. Each of thefive speed dial view pages has ten speed dial soft buttons that are userassignable. When a speed dial button has been assigned to a speed dialrecord by the user, that speed dial button displays the tag or label ofthe speed dial record. Tapping on (activating) a speed dial buttoncauses the automatic dialing of the corresponding assigned telephonenumber. Tapping on a speed dial button with no number assigned (e.g. anempty button) effects display of an edit speed dial page as illustratedin FIG. 9A that allows the user to generate a speed dial record to beassigned to that button.

Tapping on the title bar 715 of the speed dial user interface viewreveals a pull down edit menu (not shown). Selecting the edit menucauses an edit speed dial page (432 in FIG. 4) to be displayed.Referring back to FIG. 4, from the speed dial view 430 the speed dialdata can be entered and amended by the user through edit list 432, editentry 434 and find number functions 436 which are described in detailhereinbelow. The layout of the edit speed dial page is illustrated inFIG. 8. The edit speed dial page provides the primary basis by which theuser can arrange speed dial settings on the Speed Dial pages, edit speeddial records (434 in FIG. 4) and find telephone numbers for assignmentto the speed dial buttons (436 in FIG. 4).

The Edit Speed Dial page of FIG. 8 contains a table of ten “slots”arranged in two columns of five, with each slot corresponding to a speeddial button 725 on the speed dial user interface view. There arenotionally five edit speed dial pages, one for each of the speed dialview pages. The slots in the table contain the text of the tags orlabels for the speed dial records assigned to the corresponding buttons.When in the edit speed dial page view, one of the slots is always“selected”, and the user can change the selected slot by tapping on thecorresponding position of the table. In FIG. 8 the selected slot isindicated by inverted graphic colors

Located below the table of speed dial buttons for a page is a set ofspeed dial page button icons 835 that operate in a similar manner to thespeed dial page buttons 791, 792, 793, 794, and 795 and allow the userto navigate amongst the five edit speed dial pages. The speed dial pagebutton icons 835, however, are larger than the speed dial page buttons791, 792, 793, 794, and 795 because they also display an indication ofthe speed dial button assignments on each of the speed dial pages. Thisis achieved by small horizontal lines arranged in the speed dial pagebutton icons 835 representing speed dial buttons on that page that haveassigned speed dial records in the specified locations. For example, asseen in FIG. 8, the speed dial page icon has ten horizontal linesindicated that the first speed dial page has all slots occupied and thusall corresponding speed dial buttons assigned. The second speed dialpage icon indicates that that page has two “empty” slots/buttons at thelower right positions. Speed dial pages three, four, and five are allshown as empty in FIG. 8. This icon display allows the user to quicklyand easily determine which pages have empty slots/buttons at a glancefrom the edit speed dial page view, which is particularly useful forediting and rearranging speed dial assignments as described in greaterdetail hereinbelow.

The edit speed dial page may also contain several command buttons at thebottom of the screen for performing specific functions. In theembodiment of FIG. 8 only a “Done” 861 command button is illustrated.Tapping on the “Done” command button 861 returns the user to the speeddial user interface view. Other command buttons may be implemented toenable other operations to be performed on the speed dial record of theselected slot.

Tapping on an empty speed dial slot from the edit speed dial page causesthe display of a new speed dial edit entry page as illustrated FIG. 9A.The new speed dial edit entry page displays the data of the speed dialrecord for the selected slot speed dial slot. In particular, the editentry page has a “Name” field at for displaying and editing the speeddial record tag or label, and a “Number” field at for displaying andediting the telephone number for the speed dial record. The edit entrypage also has a field labeled “Extra Digits” that provides the user theability to specify a string of DTMF touch tones that may be sent by theuser after initiating a telephone call using the telephone numberassociated with the speed dial record. For example, for a particulartelephone number corresponding to a voicemail system, the user mayspecify a string of DTMF touch tones in the “Extra Digits” field foraccessing the user's voicemail box. In another application of the “ExtraDigits” field, the “Number” may contain a long distance service accesstelephone number and the “Extra Digits” field may specify a particularlong distance account code.

The entry fields “Name”, “Number”, and “Extra Digits” in the edit entrypage are each editable by the user in conventional manner on thehandheld computer system 100. For example, the fields can be editedusing the stylus on the touch sensitive screen or using a keyboard. Whenediting the “Number” or “Extra Digits” fields, the computer system maybe put into a special “number lock” mode that only allows numbers orother touch tone characters such as “*” and “#” to be entered. The editentry page has several command buttons labeled “Done” 961, “Cancel” 962,and “Lookup” 963. Tapping on the “Done” button 961 causes the telephoneapplication to return to the edit speed dial page of FIG. 8, retainingany changes to the speed dial record made by the user. The “Cancel”button 962 effects return to the edit speed dial page of FIG. 8 butdiscarding any speed dial record changes. The “Lookup” button 963 allowsthe user to find a telephone number from the user's telephone book (tobe described in the next section) to insert in the “Number” field.

Referring to FIG. 8, tapping on an filled speed dial slot from the editspeed dial page causes the display of a existing speed dial edit entrypage as illustrated FIG. 9B. The difference between the new speed dialedit entry page of FIG. 9A and the existing speed dial edit entry pageof FIG. 9B is that the existing speed dial edit entry page replaces the“Lookup” button with a “Delete” button that allows the user to deletethe speed dial record.

One special speed dial record is a voicemail speed dial recordassociated with the voicemail-box of the cellular telephone itself. Toprevent loss of this special speed dial record, the voicemail recordassociated with the voicemail-box of the cellular telephone should notbe deleteable. However, the voicemail record is moveable such that theuser can place the voicemail record into any available speed dial slot.

When a user is in the speed dial user interface view and begins enteringalphabetic characters, the telephone application will automaticallyswitch to the contacts view of the telephone application. Once in thecontacts view, the telephone application will begin searching for adesired contact using the entered character(s) as a search string aswill be set forth in the following section describing the contacts userinterface view.

FIGS. 10, 11, and 12 illustrate how the speed dial user interface viewand its associated editing views can be used to create and edit speeddial records. The editing procedures are described with reference to thepreviously described speed dial editing screens.

FIG. 10 illustrates the creation of new speed dial button beginning froman empty button from a speed dial user interface view 1010. The usertaps on an empty button 1004 that opens the edit entry page 1020 used tocreate new speed dial records or edit existing speed dial records. Inthe edit entry page 1020, the user enters data into the “Name”, “Number”and optionally “Extra Digits” fields using conventional data entry meansto create a new speed dial record. Tapping on the “Done” button effectsreturn to the Speed Dial page 1030 with the previously empty button nowassigned to the new speed dial record. The button 1005 now displays theName field text, in this case “Ron Home” indicating that the speed dialbutton/slot is no longer empty.

A speed dial button insertion procedure is illustrated at in FIG. 11,beginning from a speed dial user interface page 1110. The user taps onthe title bar of the Speed dial page and selects the revealed “Edit”menu item 1104. This cause the telephone application to bring up theedit speed dial page 1120 corresponding to the speed dial user interfacepage 1110. The user selects one of the slots on the edit speed dial page1120 to edit and taps it. The telephone application then displays theedit entry page 1130, allowing the user to edit the speed dial record aspreviously described. The user taps on the “Done” button at thecompletion of the speed dial record editing to return to the edit speeddial page as shown at 1140. The selected slot now contains the editedspeed dial record. Tapping on the “Done” button effects return to thecorresponding speed dial page 1150, where the new speed dial record tagor label is displayed on the speed dial button.

A second speed dial record editing procedure is illustrated withreference to FIG. 12, beginning from a speed dial user interface view1210. The user obtains the corresponding edit speed dial page 1220through selection of the “Edit” pull-down menu item. In this case theuser selects a different speed dial page to edit by tapping on theassociated speed dial page icon 1225. An occupied speed dial slot onspeed dial edit page 1230 is selected by tapping on it to transition tothe edit entry page 1240 containing the speed dial record data for theselected speed dial slot. The user is then able to edit the speed dialrecord data as desired. After completing the desired edits, the usertaps the “Done” button to store the amended speed dial record. Thetelephone application then returns to the edit speed dial page 1250 forthe fourth speed dial page. Finally, tapping on the “Done” button onedit speed dial page 1250 returns the user to the speed dial userinterface view 1260 of the edited speed dial page, the fourth speed dialpage in this example.

Contacts View

Referring to FIG. 4, an embodiment provides for a contacts view 440 asan interface of the telephone application 401. In one embodiment, thecontacts view 440 is a user-interface to a library of contact recordsstored on the computing device. Each contact record in the contactsdatabase may contain the name, work address, home address, worktelephone number, home telephone number, mobile telephone number, faxnumber, Internet e-mail edges, and other personal contact information.Additionally, alternative messaging addresses and identifiers may beincluded in each contact record, including for example, alternativeemail addresses, IM handle or identifier, SMS identifier, and MMSidentifier.

FIG. 13A illustrates one embodiment of the contacts user interface view.Note that the contacts view button 1330 is now highlighted with invertedgraphics. The contacts user interface view is comprised of a title bar1315, a main area 1325, and command area 1335.

As illustrated in FIG. 13A, the main area 1325 of the contacts viewcomprises an integrated list of names and associated telephone numbers.The names may be listed as “last-name, first-name” or “first-namelast-name” as selected by the user. Furthermore, the names will bedisplayed in alphabetical order using “last-name, first-name” or“first-name, last-name” as selected by the user. In the illustration ofFIG. 13A, the names are listed in the “last-name, first-name” displayformat and order. The names displayed in the main area 1325 are leftjustified.

The telephone numbers associated with the displayed names are displayedbelow the associated name and right justified. Note that by using a fullline for the name and a full line for each associated telephone number,the display will not need to abbreviate or shorten most names ortelephone numbers. In an embodiment, only the voice telephony telephonenumbers such as a home telephone number, a work telephone number, a maintelephone number, a mobile telephone number and/or other voice telephonenumber associated with each name is displayed. Fax numbers are notdisplayed since it is generally not useful to dial a fax number from thecomputer-based mobile telephone system. The telephone numbers are listedin the same order as the telephone numbers exist in the contact record.

In the command area 1335 of the contacts user interface view resides apair of scroll buttons 1323, a “new” button 1322, and a search field1321. The new button 1322 allows the user to enter a new personalcontact record. The scroll buttons allow the user to scroll up and downthrough the list of names and telephone numbers illustrated in the mainarea 1325 of the contacts user interface view.

The search field 1321 allows the user to search for a particular name inthe database of personal contact information. Since the contactsdatabase may store thousands of different contacts, a powerful searchmechanism is needed. However, the search system must be simple andintuitive in order to be adopted by most users. To accomplish thesegoals, the search field of the present invention uses a multiple filtersystem to search the database of personal contact information.

The search field 1321 allows a user to enter characters from a desiredname. Characters may be entered in different manners as dependent uponthe particular handheld system. For example, the characters may beentered using a keyboard or entered using a stylus in association withcharacter recognition software. After each character entry, the filtersystem produces a filtered subset of names and associated telephonenumbers from the entire contacts database. At least a portion of thatfiltered subset is then displayed in the main area 1325. If analphabetic character is entered while the user is in any of the otherpermanent user interface screens, the telephone application willimmediately open the contacts user interface view and begin a search ofthe contacts database.

Contact Lookup Algorithm Implementations

In an embodiment, the system creates a subset that contains all nameshaving a first name that matches the entered letters (for example “GR”would match the name Greg Shirai), a last name that matches the enteredletters (for example “GR” would match the name Bob Green), or a firstname initial and last name that matches the entered letters (for example“GR” would match the name George Robinson). Spaces within names areignored for matching purposes in order to use the space bar on akeyboard as the signal to dial the number. Thus, “vand” matches the lastname of name Jean-Claude Van Damme. When a user deletes a character, thesearch will add back names that now match the shorter string. Additionaldetails on an filtering embodiment can be found in the co-pending patentapplication entitled “Multi-Context Iterative Directory Filter”, filedconcurrently with this application and hereby incorporated by reference.

Referring to FIG. 13A, the user has entered the characters “CAR” in thesearch field 1321. The search letters “CAR” match the names “Harris,Carmine” and “Lamb, Carmen” since the letters “CAR” are in the firstnames of those two names. The search letters “CAR” match the names“Carter, Jimmy” and “Carnack, Mike” since the letters “CAR” are in thelast names of those two names. Finally, the search letters “CAR” matchthe names “Arnett, Candy”, “Arnold, Chevy”, and “Arnold, Clint” sincethe letters “CAR” match the initial of the first name and the first twoletters of the last name of those three names. This final filteringcriteria, the matching of a first name initial and last name is one ofthe most powerful features of the search system because there is not alarge amount of aliasing in this filter. This final filtering criteriais particular useful when searching for the contact information for aparticular family member since the common last name of family memberswill cause undesirable aliasing. In the example of FIG. 13A, if the userhas family members “Arnett, Candy”, “Arnett, Kevin”, “Arnett, Paul” and“Arnett, Susan”, only the name “Arnett, Candy” is displayed since it isthe only family name that matches the “CAR” string. At any time during asearch, the user may use scroll through the currently displayed searchresults by using scroll buttons 1323, scroll keys on a keyboard, orother scrolling input means.

According to another embodiment, the search string entered by the usermay be searched in sets designated by the user, where each setcorresponds to one or more characters. The user may designate eachcharacter string set, and during the lookup the device looks for contactrecords where each set is present in a separate name or other charactervalue field of the contact record/For example, the user may enter eitherof the following: “JO S” or “JO SM” or “JO R S”; and receive as a resulta record of a contact with the name “John Robert Smith”. In the exampleprovided, a space (or other designated character entry) is used todesignate each character set that is to be searched against a separatename. In an embodiment, such as when the designated character entrydelineating one set from another is present, the search is performed tofind the record(s) that has separate fields with values that match oneof the sets of character string. Thus, in the example provided, “JO” isnot separated into different fields when the search is performed, butmaintained as an atomic unit that is compared as a whole against valuesof individual fields in a given contact record.

Additionally, each character set may be compared against fields otherthan first, last or middle name. For example, each character set may besearched against a Company name, a title or position, or street address.For example, the entery “JO Pres” may return a record of “John Smith,President of XYZ Company etc.”

Ambiguous Key Entry Handling

As previously set forth, the telephone application may automaticallyopen the contacts user interface view if the user begins enteringcharacters while in the speed dial or call history view. In anembodiment that uses a keyboard containing keys that are associated withboth a letter and a digit, such as the Y/1 key on keyboard of FIG. 3C,it may be considered ambiguous as to whether the user is attempting todial a number or spell out a name. For example, the series of keystrokesN/8,Y/1, K/6, K/6, and I/3 may be the name “Nikki” or the number“81663”. In such a circumstance, one embodiment provides that thetelephone application will assume that a name is being spelled out andsearch through the contacts database using some filtering means.However, if there is no matching contact and all the entered keystrokeswere from keys that have both a letter and a digit, then the telephoneapplication will assume the user is attempting to dial a telephonenumber with the key pad area 391 and automatically switch to the dialpad view and display the entered keystroke sequence as a series ofdigits. Thus, it is possible for a user to be in the speed dial userinterface view, begin entering keystrokes, automatically switch to thecontacts view, and then automatically switch to the dial pad view if theseries of keystrokes were all from the dial pad area 391 and associateletters do not match any entry in the contacts database.

An embodiment also provides for the device to be in a look-up only modeof operation, where ambiguous keys that have both character and numberassignments result in a number lookup. For example, if the user enterskeys corresponding to N/8,Y/1, K/6, K/6, one matching result may be thereturn of a contact record containing the phone number (408) 555-1866.In this case, the user may see the whole number and dial it (when heonly remembered an extension or a portion of it) or he may be able toaccess the whole contact record and use an alternative number for thecontact with the matching number. Still further, the number sequence maybe matched to a field other than phone number, such as home address(“866 Maple Street”), instant message or messaging identifier(“Tomm866687464” or “Tom866@email.com”) or any other character value ofa field contained in the contact record.

Referring back to FIG. 13A, in the main area 1325 of the contacts userinterface view, either a name (from the left justified names) or atelephone number (from the right justified associated telephone numbers)may be highlighted for focus. Normally, the first telephone number inthe main area 1325 is initially highlighted for focus. In FIG. 13A, thename “Arnett, Candy” is highlighted with inverted graphics after a userhas scrolled upward. When a highlighted name is activated by pressing anenter key, a keyboard space bar, or other means, the system opens up afull contact editing screen for editing a contact record associated withthe selected name. When a highlighted telephone number is activated bypressing an enter key, a keyboard space bar, or other means, then thathighlighted telephone number is automatically dialed by the cellulartelephone system.

In an embodiment, the telephone numbers are not displayed exactly as thetelephone numbers are entered into the contact record. Instead, thetelephone numbers are displayed exactly how the cellular telephone willdial the number. Thus, any rules for adding or removing area codes orother prefixes or postfixes should be applied before displaying thenumber. Similarly, any extraneous text such as “ext. 123” should beremoved.

In an alternate embodiment, the email address (if available) associatedwith a displayed name is also displayed. The email address may bedisplay on its own line just as the voice telephony telephone numbersare displayed. In this manner, the user of the device may highlight andactivate the email address. Activating the email address may launch anemail application with an outgoing message addressed to the selectedemail address as an initial screen display.

FIG. 13B illustrates a method for handling ambiguous key entries inconnection with performing a lookup of a contact record and/or dialing aphone number, under an embodiment of the invention. As mentioned,certain keys on a keyboard of a computing device may have a number valueor character value when actuated, depending on the context.

In one embodiment, the contact lookup feature may be implemented inconnection with an application for enabling a person to place phonecalls. For example, the contact lookup feature may be provided as asemi-persistent feature (e.g. present unless the user elects otherwise)that is present when the application for enabling a person to make phonecalls is opened or in operation. As such, computer-implemented decisionsmay be needed as to how an entry with an ambiguous value of number oralphabet character is to be treated.

In step 1380, an alphanumeric entry is received by the computing devicewhen such input can be used by either the phone application (theapplication for enabling the person to make calls) or the lookupfeature. As will be described, whether a particular value has a numberor character value may be based on which application the user wishes tohandle the entry. For example, the user may intend a number entry whenusing the phone application, or a letter entry when the intent is to usethe lookup feature.

In step 1382, a decision is made as to whether the entry is ambiguous.An ambiguous entry may have either numerical or alphabet values,depending on what application the user wishes to consume the entry. Forexample, in one implementation, ten keys on a QWERTY style keyboard canbe interpreted as character or number, depending on the context that isintended. If the determination is that the key entry is ambiguous (i.e.one of the characters that has number and alphabet values), then themethod proceeds to a juncture 1383. At juncture 1383, an embodimentprovides that two processes are performed concurrently: an alphabeticallookup of the contact database, or a numerical display of a numbersequence. Otherwise, if the entry is unambiguous, the process that isperformed is the alphabet lookup process, since in the implementationbeing described, only alphabetical keys are unambiguous.

A process for the alphabetical lookup of the contact database isperformed as follows. In step 1388, a character (if only one entry) orsequence of characters (if more than one entry) is used to perform alookup of the contact database. In step 1390, the matching records ofthe contact database are displayed. In one embodiment, the display ofthe matching contact records is ongoing. In step 1392, a determinationis made as to whether another entry is made for the sequence. Thus, ifanother character is entered, the process returns to step 1388. Theresult is that after each character, all matching records are shown. Anylookup algorithm, including one described by this application may beused. With each entry, the number of matching records is dwindled. Thelookup process ends in when the user stops entering entries, and allmatching records are displayed in step 1390. At that point, the recordor records that match the sequence of entries are displayed at one timeon the display of the computing device.

From juncture 1383, an embodiment provides that both the alphabeticallookup of the contact database process and a number/sequence displayprocess is performed concurrently. Accordingly, from juncture 1383, anembodiment provides that steps 1388-1392 are performed, as well as thefollowing: in step 1394, number values for an ambiguous key entry isdisplayed. In step 1395, a determination is made as to whether there isanother entry. If there is no other entry, then the number or sequenceof number (if there has been more than one entry) is displayed from step1394. There may be a concurrent match of contact records from thealphabet contact lookup process. If there is another entry, adetermination is made again as to whether the entry is ambiguous. Assuch, the method returns to step 1382 and juncture 1383. If anunambiguous key is entered after an ambiguous key, following step 1385,the number process is terminated in step 1386. The only process ineffect is then the contact lookup process, using the assumption that allentries entered up until that point are to have alphabetical values.Otherwise, if successive entries are made so that the number process isnot terminated, the user can, once all the needed numbers are entered,cause the number to be dialed by a subsequent action.

FIG. 13C illustrates an implementation of an embodiment such asdescribed with a method of FIG. 13B. In FIG. 13B, a screen display isshown comprising a lookup feature 1397 and a dialer for a phoneapplication. In one implementation, the lookup feature 1397 isimplemented as a plug-in to another application, such as a Home Viewapplication that displays interfaces to multiple applications. A plug-inmay correspond to a program or sequence of code embedded in anotherprogram. In an example provided by FIG. 13C, a user has entered twoentries: G/6 and R/2. On one interface (e.g. pop-up view 1391), contactrecords matching the two alphabet entries of “GR” are displayed, usingan algorithm such as described above. At the same time, the number valuesequence 1399 corresponding to “62” is displayed on the right side ofthe lookup feature 1399. If the user submits a dial action, the numberentry may be used. If the user selects a matching contact record, thenthat contact record may be opened or used to perform some otheroperation. If the user enters a unambiguous entry following G/6, R/2,then the number sequence 1399 disappears and the contact lookup is theonly application processing the key entries as input.

As described above, the contact lookup feature may be implemented as aplug-in, meaning it is embedded and operated in connection with anotherapplication. As such, multiple applications may be operating at one timefrom one display screen on a computing device. As such, more than oneprotocol or process may be needed to determine which application that isoperating or operable from one display screen is to receive an input.For example, a protocol may be established that a key entry is to go tothe lookup feature or number dialer, as described in FIG. 13B, unlessthe key entry qualifies as a press and hold (e.g. held for a second). Insuch a case, the press and hold may be interpreted as a “quick action”key press, such as speed dial, causing the computing device to performone or more operations previously associated with that particular input.

Another protocol may be implemented that designates any input that canbe interpreted as a number (e.g. one of the ambiguous keys in FIG. 13B)is interpreted as a number when a call is in progress. As such, theselection of that key causes a DTMF signal. An implementation providesthat some user-interface mechanism is provided to enable the user toswitch out of this default state. For example, when the user is on acall, the user may have the ability to select which application, plug-inor view is to receive an entry, including the ability to switch out ofthe DTMF-first consumption of an ambiguous key entry.

Active Call View

The final main user interface view of the telephone application is theactive call user interface view. The active call user interface view isonly available when there is an active incoming or outgoing telephonecall. The contents of active call user interface screen will bedependent upon the telephone call (incoming or outgoing) and theparticular abilities of the carrier network.

In an embodiment, the active call user interface view will allow theuser to easily access various advanced telephone features. For example,the user may place a call on hold, initiate a three-way call, hang-upthe call, enter the extra digits associated with an outgoing call, orturn on/off a speakerphone feature.

FIG. 14 illustrates one embodiment of an active call user interface viewfor an outgoing call to a voicemail system. The active call userinterface view may include a title bar 1415, a view area 1425, and anactive call view button 1450. Similar to the active call view button550, the active call view button 1450 may be used by the user to accessthe active call view. In an implementation shown, the active call viewbutton 1450 is present only when there is an active telephone call. Toenter a DTMF account code or password for the voicemail system, the usercan select the “extra digits” button 1464 to play the extra DTMF codesentered in the “extra digits” field of the speed dial record. The usermay turn on a speakerphone feature by pressing “speakerphone” button1463.

FIG. 15 illustrates another active call user interface view. The activecall user interface view of FIG. 15 may include a title bar 1515, a viewarea 1525, and an active call view button 1550. In the active call userinterface view of FIG. 15, the speakerphone is active such that thespeakerphone button has been replaced with a “cancel speakerphone”button 1563. If the call was initiated using a means other than a speeddial button associated with a speed dial record with a set of “extradigits” then the active call screen will provide a key pad button 1564that can be used to access the dial pad view such that the user mayenter DTMF touch tones. If the hardware embodiment includes a keyboardwith a dial pad area 391 as illustrated in FIG. 3C, then the user maysimply enter DTMF touch tones by tapping the number keys in the dial padarea 391 or other keys associated with DTMF dial tones such as #, *, and+.

Telephone Application Alerts

Certain events cause special alert pages to be displayed by thetelephone application page. For example, when an incoming call isreceived, the user is presented with an incoming call alert screen.

FIG. 16 illustrates a first embodiment of an incoming call alert screenview that informs the user of an incoming call. The first embodiment ofthe incoming call alert screen view may include a title bar 1615 and aview area 1625. At the top of the screen display is a message generatedby a caller-id feature that specifies the telephone number of theincoming call (if available). If the incoming telephone number exists inthe contact database, then the label associated with the telephonenumber is displayed, in this case the label “Home” is displayed. Theembodiment of an incoming call screen is illustrated in FIG. 16 isdelivered when the flip lid 320 of the integrated computer and cellulartelephone system illustrated in FIG. 3A is open. The user may answer orignore the incoming telephone call by touching either “Answer” or“Ignore” buttons respectively.

FIG. 17 illustrates a second embodiment of an incoming call alert screenview that informs the user of an incoming call. The second embodiment ofthe incoming call alert screen view may include a title bar 1715 and aview area 1725. The embodiment of an incoming call screen is illustratedin FIG. 17 is delivered when the flip lid 320 of the integrated computerand cellular telephone system illustrated in FIG. 3A is closed. The usermay answer the incoming telephone call opening the lid 320 of theintegrated computer and cellular telephone system. Similarly, the usermay ignore the telephone call (and thus stop the ringing) by tapping theupward scroll button.

If an incoming telephone call is received while the user is opening orclosing the flip lid 320 or presses a button on the integrated computerand cellular telephone system, an undesirable action may occur. Forexample, if the user is opening the flip lid 320 while an incoming callis being received, then the user may inadvertently answer the telephonecall without having a chance to review the caller-ID field. Similarly, auser may pressing the scroll up button just when an incoming call is andthe lid is closed, this might cause the integrated computer and cellulartelephone system to ignore the incoming call before the user even knewan incoming call was being received.

To prevent such undesirable effects, one embodiment of the presentinvention uses an input “lockout period”. Specifically, one embodimentignores all input events (such as lid opening event or a key pressevent) for a predefined period when an incoming call is received. Thus,if an incoming telephone call is received while a user is opening thelid, the opening of the lid will not cause the integrated computer andcellular telephone system to answer the telephone call. Instead, thesystem will display the interface of FIG. 16. Similarly, if the userpresses the upward scroll button when an incoming call is received andthe lid is closed, the button press will not ignore the telephone call.In one embodiment, the lock out period is half a second. However, it maybe adjusted to a longer or shorter period of time.

Voicemail Control and Functionality

Embodiments described herein enable a computing device to be used forvoicemail control and functionality. An example of a computing devicethat can be used with this section is a handheld computing system, suchas described with previous embodiments. For example, a cellulartelephone or smart phone (a phone and personal digital assistant (PDA)hybrid) are examples of devices that can implement embodiments such asdescribed. With the advance of Internet telephony, however, embodimentssuch as described may apply to other forms of telecommunications such asInternet Telephony.

FIG. 18A describes a flowchart showing one embodiment of adding a voicemailbox to the speed dial of the system for voicemail access. Theprocess starts at block 1810.

In step 1815, the user selects to add a new voicemail account to thespeed dialing list. In one implementation, voicemail programmed speeddial buttons are treated differently from other speed dial buttons. Forexample, the particular speed dial action that causes the computingdevice to access the voicemail may be designated by a wireless carrieror other third party.

In step 1820, the user is prompted to enter the telephone number and/orpassword for the voicemail account. In one implementation, a speed dialrecord is created from the user entering a sequence ofnumbers/characters. The sequence of number/characters specify (i)voicemail speed dial telephone number, (ii) a number or character thatindicates a pause (e.g. “one second pause”), and (iii) a sub-sequence ofnumbers that signal the password. For the pause, the computing devicemay play no DTMF tone, while for the password, the DTMF tones for thesequence of numbers are played over the telephone connection. In anotherimplementation, when the user first pushes the voicemail button, thetelephone number is dialed, and when the user pushes the voicemailbutton for a second time, the password is dialed. Both of these numbersare entered at this stage.

Step 1825 provides that command translation is established, to enablethe user to correlate user-interface function of the computing devicewith numbers (actually DTMF tones) of a specific voicemail system thatperform commands based on the user entering those numbers. Accordingly,in step 1825, a control screen is displayed. The control screen includeseach of the commands that are generally available in a voicemail system,such as previous message, next message, back, skip message, deletemessage, forward message, back to the beginning, reply to message, etc.For one embodiment, a subset of these commands may be made available.For another embodiment, the user may alter this listing, and may createnew commands.

In step 1830, the user is prompted to enter a command or commandsequence for each of the commands that are available in the voicemailsystem. For example, in a voicemail system, pressing the “3” key maymean “delete message.” The user can enter the number “3” underneath thecommand key, to program the command. In other systems, the pressing the“7” key twice may be the code to “delete message.” The user can enterwhatever key combination works for the specific voicemail system.

At step 1835, after the user finishes programming the voicemail system,the user is prompted to name the speed dial button. For one embodiment,the default name is “voicemail.” However, users may have multiplevoicemail accounts, and may wish to have more descriptive names.

Step 1840 provides that the process ends. The programming of thevoicemail access is now complete, and the user can access the voicemailsystem by pressing the speed dial button. FIG. 18B shows one embodimentof screen shots for voicemail control. The voicemail button 1850 isshown on speed dialing screen 1855. When the user selects the voicemailbutton 1850, the voicemail number programmed in by the user is dialed.For one embodiment, the dialing screen is shown (see screen 820). Whenthe call connects the voicemail control screen 1860 is displayed. Thevoicemail control screen 1860 includes the controls available for thevoicemail system. Control screen 1860 is an exemplary screen, showingthe controls: (previous message), back (to the beginning of themessage), pause, next (message), (delete message), reply (to message),forward (message), and dial pad, for entering additional commands. Otherlayouts or sets of commands may be used. However, using this type ofvoicemail control screen 1860 for all voicemail applications simplifiesaccess to multiple voicemail accounts.

FIG. 19 illustrates another method describing establishment and use of avoicemail control feature for a computing device, under an embodiment ofthe invention. In step 1910, a computing device is configured to storepassword and optionally, password commands for voicemail access on atelephony computing device. In an embodiment such as provided, thepassword may be stored with the voicemail number as one sequentialnumeric entry. This entry may form a single speed dial or quick actioncommand. An example of a password command may include a user dialing avoicemail service general number, then having to make a anotherselection or input to have the voicemail system route his access andretrieval card to a specific account.

Step 1920 provides that command inputs that can be made by a user duringa voicemail access call or correlated to voicemail functions of aparticular voicemail service. Basic examples of command inputs includedesignated input commands (e.g. displayed soft keys and arehardware/button inputs) that are to mean a specific command that thevoicemail system can understand and process (e.g. “save message”“forward message” “skip message” exit voicemail” “delete message”). Inone implementation, step 1920 is performed by a user of the device, andthe voicemail service is configured for one that the user selects. Inanother implementation, the voicemail service is pre-determined on thecomputing device.

As an option, step 1930 provides that a programmatic voicemail accessand password delivery is performed from the computing device to avoicemail system of the user. The programmatic access and passworddelivery means that at least some of the steps needed to access a user'svoicemail box are performed programmatically, including the transmissionof DTMF tones corresponding to password and password commands foraccessing the desired voicemail box.

In step 1940, control features for use with the accessed voicemailaccount are enabled on the computing device. In an embodiment such asshown in FIG. 21, this may correspond to displaying a set of voicemailfunctions and enabling the user to operate a mechanical orcomputer-generated input mechanism to make command selections.

Once voicemail access is achieved, step 1950 provides that a user'scommand input(s) is received and matched to specified functions of thevoicemail system. These commands are received by the user entering inputcorrelated to those commands, as established in step 1920.

In step 1960, the commands selected by the user are translated into DTMFsignals that are recognized and processed by the voicemail system.

FIG. 20 illustrates a system for enabling establishment and use of avoicemail control feature for a computing device, under an embodiment ofthe invention. The voicemail system includes a voicemail application2010, a DTMF translation library 2020, and a DTMF signal generator. Thevoicemail application 2010 may correspond to plug-in (embeddedapplication) or resident application that executes and enables the userto enter pre-configured command inputs.

Additionally, the voicemail application 2010 may be operable by the userto establish the voicemail command features, including access to avoicemail box and configuring inputs on the computing device totranslate commands that can be handled by the voicemail system. Forexample, the voicemail application 2010 may be operated in a set-upphase to enable the user to perform one or more of the following: (i)dial voicemail; (ii) enter password and pause or other commands; and(iii) enable and/or configure command inputs from user. Subsequently,during an operational, the voicemail application may automate many ofthe functions normally needed to be performed manually by the user,including one or more of the following: (i) dial some or all numbers ofvoicemail; and (ii) enter numbers for voicemail passcode.

According to an embodiment, one or more user-interfaces are provided toenable the user to operate the voicemail application 2010 in the set-upphase and in the operational phase. A display interface 2040 andmechanical interface 2050 may individually or jointly combine to enablethe user to use the voicemail application in one or both of the setup oroperational phase. In one implementation, the display interface 2040 maybe used to at least prompt the user into entering an input (perhapsthrough some other user-interface, such as the mechanical interface2050). The mechanical interface 2050 may correspond to keys or buttons(such as keys or buttons of a keyboard or of one or moreapplication/specialized buttons), to a multi-directional member (e,g.joystick or pad) or other form of device for entering input.

In the operational phase, the display interface 2040 and/or mechanicalinterface may be used to enable the user to specify command inputs 2042from the voicemail system. The command inputs may be received andprocessed by DTMF translation library 2020, which converts one or morecommand inputs into a DTMF identifier 2044 (or sequence). The DTMFgenerator 2030 may convert the DTMF identifier(s) 2044 into DTMF tones2046 that are recognized as commands (e.g. “play “delete” etc.) by thevoicemail system.

FIG. 21 illustrates an embodiment implemented on a computing device 2110in which the commands inputs for the voicemail system are entered andprocessed through a multi-dimensional mechanical input mechanism 2150.An example of a multi-dimensional input mechanism is a mechanism, or setof mechanisms that are coordinated, to provide inputs such asdirectional and selection inputs. In one embodiment, the inputs areentered in connection with display prompts provided by a displayedinterface 2130 on a display 2160. The displayed interface 2130 includesvisual indications 2132 that indicate what and how the multi-dimensionalmechanical input mechanism may be operated in order to generate acorresponding command input. In one embodiment, the display 2160 iscontact-sensitive, so that the visual indications 2132 of the displayedinterface 2130 are selectable.

In one embodiment, multi-dimensional mechanical input mechanism 2150 isa five-way button or key set. The input mechanism 2150 may be actuatedin any one of four directions (with respect to FIG. 21, north direction2111, south direction 2113, east direction 2115 and west direction2112). In addition, the input mechanism 2110 may have a center selectionkey 2116. In an embodiment shown, the input mechanism 2110 includes isoperable by a single thumb or of the user. The user can enterdirectional navigational input by steering his thumb in the direction ofthe desired navigation. Furthermore, the user can signal selection bypressing the center selection key 2116. U.S. patent application Ser. No.10/775,472 (filed Feb. 9, 2004, and hereby incorporated by reference),U.S. Provisional Patent Application Ser. No. 60/455,178 (filed Mar. 16,2003 and hereby incorporated by reference), and U.S. Provisional PatentApplication Ser. No. 60/479,392 (filed Jun. 17, 2003 and herebyincorporated by reference) each describe an input mechanism for use withan embodiment such as described.

Although illustrative embodiments of the invention have been describedin detail herein with reference to the accompanying drawings, it is tobe understood that the invention is not limited to those preciseembodiments. As such, many modifications and variations will be apparentto practitioners skilled in this art. Accordingly, it is intended thatthe scope of the invention be defined by the following claims and theirequivalents. Furthermore, it is contemplated that a particular featuredescribed either individually or as part of an embodiment can becombined with other individually described features, or parts of otherembodiments, even if the other features and embodiments make nomentioned of the particular feature. Thus, the absence of describingcombinations should not preclude the inventor from claiming rights tosuch combinations.

What is claimed is:
 1. A method comprising: providing an interface forenabling a voicemail system to be controlled from the handheld computingdevice on a contact-sensitive display for the handheld computing device,the interface enabling selection by a user of any one of a plurality ofcommand inputs, the interface including a module enabled toautomatically provide a user password stored on the handheld computingdevice to the voicemail system; assigning the plurality of commandinputs to the interface; correlating one or more of the plurality ofcommand inputs with one or more respective keys of the handheldcomputing device, such that the one or more command inputs may beselected by pressing the respective keys with which they are correlated;detecting selection of one of the plurality of command inputs; andgenerating a signal tone corresponding to the selected command input,wherein the signal tone is transmitted across a network to the voicemailsystem to communicate a command to the voicemail system.
 2. The methodof claim 1, wherein providing an interface includes providing amechanical interface.
 3. The method of claim 2, wherein providing themechanical interface includes coordinating operation of the mechanicalinterface with selection of one or more of the plurality of commandinputs.
 4. The method of claim 2, wherein providing the mechanicalinterface includes coordinating an operation of a multi-dimensionalinput mechanism with selection of one or more of the plurality ofcommand inputs.
 5. The method of claim 4, wherein coordinating theoperation of the multi-dimensional input mechanism with the selection ofthe one or more of the plurality of command inputs includes coordinatinga directional input and a selection input made through operation of themulti-dimensional input mechanism.
 7. The method of claim 2, whereinproviding the interface includes displaying a plurality of objects foraiding use of the mechanical interface to provide the selection.
 8. Themethod of claim 1, wherein detecting selection of one of the pluralityof command inputs includes identifying the command input that correlatesto a command to the voicemail system for performing an operationselected from a group consisting of: saving a message, playing amessage, forwarding a message, deleting a message, and skipping amessage.
 9. The method of claim 1, wherein generating a signal toneincludes transmitting the signal tone across a cellular network.
 10. Themethod of claim 1, wherein generating a signal tone includestransmitting the signal tone across the Internet using a Voice overInternet Protocol connection.
 11. A non-transitory computer-readablemedium storing instructions, the instructions executable by a processorto: provide an interface for controlling a voicemail system via acontact-sensitive display of a handheld computing device, the interfaceenabling selection of any one of a plurality of command inputs, theinterface including a module to automatically provide a user passwordstored on the handheld computing device to the voicemail system; assignthe plurality of command inputs to the interface; correlate one or moreof the plurality of command inputs with one or more respective keys ofthe handheld computing device, wherein the one or more command inputscan be selected by pressing the respective keys with which they arecorrelated; detect selection of one of the plurality of command inputs;and generate a signal tone corresponding to the selected command input,wherein the signal tone is transmitted across a network to the voicemailsystem to communicate a command to the voicemail system.
 12. Thenon-transitory computer-readable medium of claim 11, the instructionsfurther executable to: coordinate operation of the interface withselection of one or more of the plurality of command inputs.
 13. Thenon-transitory computer-readable medium of claim 11, the instructionsfurther executable to: coordinate an operation of a multi-dimensionalinput mechanism with selection of one or more of the plurality ofcommand inputs.
 14. The non-transitory computer-readable medium of claim13, the instructions further executable to: coordinate a directionalinput and a selection input made through operation of themulti-dimensional input mechanism.
 15. The non-transitorycomputer-readable medium of claim 11, the instructions furtherexecutable to: transmit the signal tone across a cellular network.
 16. Ahandheld computing device comprising: a display screen; a processor; anda storage device including instructions executable by the processor to:provide an interface for controlling a voicemail system via the displayscreen, the interface enabling selection of any one of a plurality ofcommand inputs, the interface including a module to automaticallyprovide a user password stored on the storage device to the voicemailsystem; assign the plurality of command inputs to the interface;correlate one or more of the plurality of command inputs with one ormore respective keys of the handheld computing device, wherein the oneor more command inputs can be selected by pressing the respective keyswith which they are correlated; detect selection of one of the pluralityof command inputs; and generate a signal tone corresponding to theselected command input, wherein the signal tone is transmitted across anetwork to the voicemail system to communicate a command to thevoicemail system.
 17. The handheld computing device of claim 16, theinstructions further executable to: coordinate operation of theinterface with selection of one or more of the plurality of commandinputs.
 18. The handheld computing device of claim 16, the instructionsfurther executable to: coordinate an operation of a multi-dimensionalinput mechanism of the handheld computing device with selection of oneor more of the plurality of command inputs.
 19. The handheld computingdevice of claim 18, the instructions further executable to: coordinate adirectional input and a selection input made through operation of themulti-dimensional input mechanism.
 20. The handheld computing device ofclaim 16, the instructions further executable to: transmit the signaltone across a cellular network.